//////////////////////////////////////////////////////////////////////////
//// written by Michael Hutzel										  //
//// Bullet.h & Bullet.cpp											  //
//// August - 8/2/11													  //
//// Senior  Project "Terminal Connection"                              //
//////////////////////////////////////////////////////////////////////////
//
//
//#pragma once
//
//#include "d3d9.h"
//#include "d3dx9.h"
//#include <vector>
//#include "ModelManager.h"
//#include "VirusEnemy.h"
//
//// Add pragma comments so we do not have to change
//// the project dependencies
//#pragma comment (lib, "d3d9.lib")
//#pragma comment (lib, "d3dx9.lib")
//
//// Bullet structure
//struct s_Bullet
//{
//	D3DXMATRIX			worldMat, scaleMat, rotMat, transMat;
//	D3DXVECTOR3			vecPos;
//	bool				bAlive;
//	bool				bCollision;
//	
//	// AABB members
//	D3DXVECTOR3			vecBBMin;
//	D3DXVECTOR3			vecBBMax;
//	D3DXVECTOR3			vecModelBounds[8];
//	D3DXVECTOR3			worldBBmin;
//	D3DXVECTOR3			worldBBmax;
//
//	// Timer variables for each individual bullets
//	LONG				lCurrentTime;
//	int					iTimer;
//	LONG				lStartTime;
//
//	// Target destination of each bullet
//	D3DXVECTOR3			vecTarget;
//};
//
//class Bullet
//{
//private:
//	// Singleton instance
//	static Bullet*	m_BulletInstance;
//	// Pointer to the D3D Device
//	IDirect3DDevice9*	m_Device;
//	// Pointer to the model manager
//	ModelManager*		m_ModelMan;
//	VirusEnemy*			m_pVirusEn;
//	///////////////////////////////////////////////////
//	//Bullet Variables
//	// X object variables
//	ID3DXMesh*			m_pMesh;
//	D3DMATERIAL9*		m_pMaterials;
//	DWORD				m_dwNumMaterials;
//	LPDIRECT3DTEXTURE9*	m_pMeshTextures;
//	// Create the vector list to hold the bullet
//	std::vector<s_Bullet*>	bulletList;
//	// Count to keep track of how many bullets there are
//	short				sBulletCount;
//	// Mesh for the bounding box
//	ID3DXMesh*			m_BBMesh;
//	// Vector to hold the distance for pull effect
//	D3DXVECTOR3			vecDistance;
//	float				fSpeed;
//	// Score variable for bullet
//	bool				bKilledV;
//
//public:
//	Bullet(void);
//	~Bullet(void);
//
//	// Singleton functions
//	static Bullet*	GetInstance(void);
//	void DeleteBulletInstance(void);
//	// Bullet functions
//	void InitBullet(IDirect3DDevice9* m_pD3DDevice);
//	void UpdateBullet(float fdeltaTime);
//	void RenderBullet(void);
//	void CreateBullet(float fXTarget, float fYTarget, float fZTarget);
//	// Collision functions
//	void CalculateWorldBB(short sBulletID);
//	bool VirusCollisionDetection( short sBulletID);
//
//	bool VirusKilled();
//	// Shutdown function
//	void ShutdownBullet(void);
//};
